﻿' Para acceder a OleDB  
Imports System.Data.OleDb
Module Module1
    Public Propiedades_de_la_localidad As String
    Public Propiedades_del_Objeto As String
    Public Propiedades_Iniciales As String
    Public Propiedades_Psis As String
    Public Propiedades_del_Mapa As String

    Public Sub ListarPropiedadesIniciales()

        If Main.txt_Título_De_La_Aventura.Text = "" Or Main.txt_Autor_De_La_Aventura.Text = "" Then
            MsgBox("No se ha especificado nombre o autor de la aventura. Por favor, rellena los dos campos", , "NOMBRE Y AUTOR AVENTURA OBLIGATORIOS")
            Exit Sub
        End If
        Propiedades_Iniciales = """" & Main.txt_Título_De_La_Aventura.Text & """" & " by " & Main.txt_Autor_De_La_Aventura.Text & "." & Chr(10) & Chr(10)
        Propiedades_Iniciales = Propiedades_Iniciales & "PART 1 - INTRODUCCIÓN" & Chr(10) & Chr(10)
        Propiedades_Iniciales = Propiedades_Iniciales & "SECTION 1 - EXTENSIONES" & Chr(10) & Chr(10)
        Propiedades_Iniciales = Propiedades_Iniciales & "    [ === LIBRERÍAS === ]" & Chr(10)

        Dim n As Integer
        For n = 0 To Librerias.CheckedListBox_LIBRERIAS.Items.Count - 1
            'If Librerias.CheckedListBox_LIBRERIAS.GetItemChecked(n) = True Then
            Propiedades_Iniciales = Propiedades_Iniciales & Librerias.CheckedListBox_LIBRERIAS.Items(n) & "." & Chr(10)
            'Else
            'End If
        Next

        Propiedades_Iniciales = Propiedades_Iniciales & "    [ === Fin Librerías === ]" & Chr(10) & Chr(10) & Chr(10)

        'OPCIONES____________________
        Propiedades_Iniciales = Propiedades_Iniciales & "SECTION 2 - OPCIONES" & Chr(10) & Chr(10)
        Propiedades_Iniciales = Propiedades_Iniciales & "    [ === OPCIONES === ]" & Chr(10)

        'Descripción de localidades abreviada.
        If Main.rbtn_DESCRIPCION_LOCALIDAD_ABREVIADA.Checked = True Then
            Propiedades_Iniciales = Propiedades_Iniciales & "Use abbreviated room descriptions." & Chr(10)
        End If
        'Descripción de localidades abreviada.
        If Main.rbtn_DESCRIPCION_LOCALIDAD_COMPLETA.Checked = True Then
            Propiedades_Iniciales = Propiedades_Iniciales & "Use full-length room descriptions." & Chr(10)
        End If
        'Contador de puntos
        If Main.chk_MARCADOR_DE_PUNTOS.Checked = False Then
            Propiedades_Iniciales = Propiedades_Iniciales & "Use no scoring." & Chr(10)
        End If
        'Prevención de UNDO
        If Main.chk_PREVENCION_DE_DESHACER.Checked = False Then
            Propiedades_Iniciales = Propiedades_Iniciales & "Use undo prevention." & Chr(10)
        End If

        'Fin Opciones______________
        Propiedades_Iniciales = Propiedades_Iniciales & "    [ === Fin Opciones === ]" & Chr(10) & Chr(10) & Chr(10)

        'Referencia Bibliográfica
        Propiedades_Iniciales = Propiedades_Iniciales & "SECTION 3 - REFERENCIA BIBLIOGRÁFICA" & Chr(10) & Chr(10)
        Propiedades_Iniciales = Propiedades_Iniciales & "    [ === REF. BIBLIOGRÁFICA === ]" & Chr(10)
        'Trama historia
        If Main.txt_Trama_de_la_historia.Text <> "" Then
            Propiedades_Iniciales = Propiedades_Iniciales & "The story headline is " & """" & Main.txt_Trama_de_la_historia.Text & """" & "." & Chr(10)
        Else
        End If

        'Género
        If Main.cbo_Genero.Text <> "" Then
            Propiedades_Iniciales = Propiedades_Iniciales & "The story genre is " & """" & Main.cbo_Genero.Text & """" & "." & Chr(10)
        Else
        End If

        'Versión
        If Main.txt_Version.Text <> "" Then
            Propiedades_Iniciales = Propiedades_Iniciales & "The release number is " & Main.txt_Version.Text & "." & Chr(10)
        Else
        End If

        'Descripción de la historia
        If Main.txt_Descripción_De_La_Historia.Text <> "" Then
            Propiedades_Iniciales = Propiedades_Iniciales & "The story description is " & """" & Main.txt_Descripción_De_La_Historia.Text & """" & "." & Chr(10)
        Else
        End If

        'Año Creación
        If Main.txt_Año_Creación.Text <> "" Then
            Propiedades_Iniciales = Propiedades_Iniciales & "The story creation year is " & Main.txt_Año_Creación.Text & "." & Chr(10)
        Else
        End If

        Propiedades_Iniciales = Propiedades_Iniciales & "    [ === Fin Réf. Bibliográfica === ]" & Chr(10) & Chr(10)


        'Regla para imprimir el BANNER TEXT inicial
        Propiedades_Iniciales = Propiedades_Iniciales & "SECTION 4 - VARIOS" & Chr(10) & Chr(10)


        If Main.chk_Banner_text.Checked = True Then
            Propiedades_Iniciales = Propiedades_Iniciales & "[Regla para imprimir el Banner Text]" & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & "Rule for printing the banner text: say " & """" & Main.rtxt_Banner_Text.Text & """" & "." & Chr(10) & Chr(10)
        End If

        'Regla para iniciar los gráficos en la máquina virtual
        Propiedades_Iniciales = Propiedades_Iniciales & "[Regla para iniciar los gráficos en la máquina virtual]" & Chr(10)
        Propiedades_Iniciales = Propiedades_Iniciales & "Rule for starting the virtual machine:" & Chr(10)
        Propiedades_Iniciales = Propiedades_Iniciales & "now the current graphics drawing rule is the standard placement rule." & Chr(10)

        If Main.lbl_RUTA_DEL_GRAFICO_INICIO.Text <> "" Then
            Propiedades_Iniciales = Propiedades_Iniciales & "Figure of " & Main.txt_Título_De_La_Aventura.Text & " is the file " & """" & Main.lbl_RUTA_DEL_GRAFICO_INICIO.Text & """" & "." & Chr(10) & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & "When play begins: " & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & "change currently shown picture to the figure of " & Main.txt_Título_De_La_Aventura.Text & ";" & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & "follow the current graphics drawing rule." & Chr(10) & Chr(10)
        End If



        'Regla para imprimir la THE STATUS LINE
        Dim S_L_L_1 As String = ""
        Dim S_L_L_2 As String = ""
        Dim S_L_L_3 As String = ""
        Select Case Main.cbo_Status_Line_Left_1.Text
            Case "Localidad Actual"
                S_L_L_1 = "[the player's surroundings]"
            Case "Contador Turnos"
                S_L_L_1 = "[turn count]"
            Case "Puntuación"
                S_L_L_1 = "[score]"
            Case "Hora del día (eng)"
                S_L_L_1 = "Hora: [time of day]"
            Case "Hora del día (spa)"
                S_L_L_1 = "Hora: [time of day in spanish]"
        End Select
        Select Case Main.cbo_Status_Line_Left_2.Text
            Case "Localidad Actual"
                S_L_L_2 = "[the player's surroundings]"
            Case "Contador Turnos"
                S_L_L_2 = "[turn count]"
            Case "Puntuación"
                S_L_L_2 = "[score]"
            Case "Hora del día (eng)"
                S_L_L_2 = "Hora: [time of day]"
            Case "Hora del día (spa)"
                S_L_L_2 = "Hora: [time of day in spanish]"
        End Select
        Select Case Main.cbo_Status_Line_Left_3.Text
            Case "Localidad Actual"
                S_L_L_3 = "[the player's surroundings]"
            Case "Contador Turnos"
                S_L_L_3 = "[turn count]"
            Case "Puntuación"
                S_L_L_3 = "[score]"
            Case "Hora del día (eng)"
                S_L_L_3 = "Hora: [time of day]"
            Case "Hora del día (spa)"
                S_L_L_3 = "Hora: [time of day in spanish]"
        End Select

        Dim S_L_R_1 As String = ""
        Dim S_L_R_2 As String = ""
        Dim S_L_R_3 As String = ""
        Select Case Main.cbo_Status_Line_Right_1.Text
            Case "Localidad Actual"
                S_L_R_1 = "[the player's surroundings]"
            Case "Contador Turnos"
                S_L_R_1 = "[turn count]"
            Case "Puntuación"
                S_L_R_1 = "[score]"
            Case "Hora del día (eng)"
                S_L_R_1 = "Hora: [time of day]"
            Case "Hora del día (spa)"
                S_L_R_1 = "Hora: [time of day in spanish]"
        End Select
        Select Case Main.cbo_Status_Line_Right_2.Text
            Case "Localidad Actual"
                S_L_R_2 = "[the player's surroundings]"
            Case "Contador Turnos"
                S_L_R_2 = "[turn count]"
            Case "Puntuación"
                S_L_R_2 = "[score]"
            Case "Hora del día (eng)"
                S_L_R_2 = "Hora: [time of day]"
            Case "Hora del día (spa)"
                S_L_R_2 = "Hora: [time of day in spanish]"
        End Select
        Select Case Main.cbo_Status_Line_Right_3.Text
            Case "Localidad Actual"
                S_L_R_3 = "[the player's surroundings]"
            Case "Contador Turnos"
                S_L_R_3 = "[turn count]"
            Case "Puntuación"
                S_L_R_3 = "[score]"
            Case "Hora del día (eng)"
                S_L_R_3 = "Hora: [time of day]"
            Case "Hora del día (spa)"
                S_L_R_3 = "Hora: [time of day in spanish]"
        End Select


        If S_L_L_1 <> "" And S_L_L_2 <> "" And S_L_L_3 <> "" Then
            Propiedades_Iniciales = Propiedades_Iniciales & "When play begins:" & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & "now the left hand status line is " & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & """" & S_L_L_1 & " / " & S_L_L_2 & " / " & S_L_L_3 & """" & "." & Chr(10) & Chr(10)
        End If

        If S_L_L_1 <> "" And S_L_L_2 <> "" And S_L_L_3 = "" Then
            Propiedades_Iniciales = Propiedades_Iniciales & "When play begins:" & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & "now the left hand status line is " & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & """" & S_L_L_1 & " / " & S_L_L_2 & """" & "." & Chr(10) & Chr(10)
        End If
        'right
        If S_L_L_1 <> "" And S_L_L_2 = "" Then
            Propiedades_Iniciales = Propiedades_Iniciales & "When play begins:" & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & "now the left hand status line is " & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & """" & S_L_L_1 & """" & "." & Chr(10) & Chr(10)
        End If


        If S_L_R_1 <> "" And S_L_R_2 <> "" And S_L_R_3 <> "" Then
            Propiedades_Iniciales = Propiedades_Iniciales & "When play begins:" & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & "now the right hand status line is " & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & """" & S_L_R_1 & " / " & S_L_R_2 & " / " & S_L_R_3 & """" & "." & Chr(10) & Chr(10)
        End If

        If S_L_R_1 <> "" And S_L_R_2 <> "" And S_L_R_3 = "" Then
            Propiedades_Iniciales = Propiedades_Iniciales & "When play begins:" & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & "now the right hand status line is " & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & """" & S_L_R_1 & " / " & S_L_R_2 & """" & "." & Chr(10) & Chr(10)
        End If

        If S_L_R_1 <> "" And S_L_R_2 = "" Then
            Propiedades_Iniciales = Propiedades_Iniciales & "When play begins:" & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & "now the right and status line is " & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & """" & S_L_R_1 & """" & "." & Chr(10) & Chr(10)
        End If

        'Descripción inicial del jugador:
        If Main.rtxt_DESCRIPCIÓN_DEL_JUGADOR.Text <> "" Then
            Propiedades_Iniciales = Propiedades_Iniciales & "When play begins: " & Chr(10)
            Propiedades_Iniciales = Propiedades_Iniciales & "now the description of the player is " & """" & Main.rtxt_DESCRIPCIÓN_DEL_JUGADOR.Text & """" & "." & Chr(10) & Chr(10)
        End If
        Propiedades_Iniciales = Propiedades_Iniciales & "PART 2 - LOCALIDADES"

        'Fin del listado inicio
        ListarProp.Rtxt_Propiedades_Objetos.Text = Propiedades_Iniciales
        ListarProp.ShowDialog()

    End Sub
    Public Sub ListarPropiedadesLocalidad()
        '[Que el nombre de la localidad no esté en blanco, en caso contrario sale del sub]
        If Main.txt_LOCALIDAD_NOMBRE.Text <> "" Then
            Propiedades_de_la_localidad = "  [ ==== LOCALIDAD: " & UCase(Main.txt_LOCALIDAD_NOMBRE.Text) & " ====]" & Chr(10)
            If Main.chk_PUERTA.Checked = True Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is a door." & Chr(10)
                If Main.chk_PUERTA_NO_APERTURABLE.Checked = True Then
                    Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is unopenable." & Chr(10)
                Else
                    Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is openable." & Chr(10)
                    If Main.chk_PUERTA_ABIERTA.Checked = True Then
                        Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is open." & Chr(10)
                    Else
                        Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is closed." & Chr(10)
                    End If
                    If Main.chk_PUERTA_CON_CERROJO.Checked = True Then
                        Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is lockable." & Chr(10)
                    End If
                    If Main.chk_PUERTA_PUESTO_EL_CERROJO.Checked = True Then
                        Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is locked." & Chr(10)
                    End If
                End If
            ElseIf Main.chk_OSCURA.Checked = True Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is a dark room." & Chr(10)
            Else
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is a room." & Chr(10)
            End If

            If Main.txt_LOCALIDADES_NOMBRE_IMPRESO.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "The printed name is " & """" & Main.txt_LOCALIDADES_NOMBRE_IMPRESO.Text & """" & "." & Chr(10)
            End If
            ' Se muestra el gráfico de la localidad
            If Main.lbl_RUTA_DEL_GRAFICO_LOCALIDAD.Text <> "" Then
                ' Creamos la definición del fichero donde se aloja el gráfico
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "Figure of " & Main.txt_LOCALIDAD_NOMBRE.Text & " is the file " & """" & Main.lbl_RUTA_DEL_GRAFICO_LOCALIDAD.Text & """" & "." & Chr(10)
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "The room illustration is Figure of " & Main.txt_LOCALIDAD_NOMBRE.Text & "." & Chr(10)
            End If

            Propiedades_de_la_localidad = Propiedades_de_la_localidad & "The description is " & """" & "[if unvisited]" & Replace(Main.txt_LOCALIDAD_DESCRIPCION_INICIAL.Text, """", "'") & "[else]" & Replace(Main.txt_LOCALIDAD_DESCRIPCION_UNA_VEZ_VISITADA.Text, """", "'") & """" & "." & Chr(10)

            ' SE DEFINE LA BRÚJULA

            If Main.cbo_NW.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is southeast of " & Main.cbo_NW.Text & "." & Chr(10)
            End If
            If Main.cbo_N.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is south of " & Main.cbo_N.Text & "." & Chr(10)
            End If
            If Main.cbo_NE.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is southwest of " & Main.cbo_NE.Text & "." & Chr(10)
            End If

            '---

            If Main.cbo_E.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is west of " & Main.cbo_E.Text & "." & Chr(10)
            End If
            If Main.cbo_W.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is east of " & Main.cbo_W.Text & "." & Chr(10)
            End If

            '---

            If Main.cbo_SW.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is northeast of " & Main.cbo_SW.Text & "." & Chr(10)
            End If
            If Main.cbo_S.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is north of " & Main.cbo_S.Text & "." & Chr(10)
            End If
            If Main.cbo_SE.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is northwest of " & Main.cbo_SE.Text & "." & Chr(10)
            End If

            '---

            If Main.cbo_ENTRAR.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is outside of " & Main.cbo_ENTRAR.Text & "." & Chr(10)
            End If

            If Main.cbo_SALIR.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is inside of " & Main.cbo_SALIR.Text & "." & Chr(10)
            End If

            If Main.cbo_SUBIR.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is down of " & Main.cbo_SUBIR.Text & "." & Chr(10)
            End If

            If Main.cbo_BAJAR.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & Main.txt_LOCALIDAD_NOMBRE.Text & " is up of " & Main.cbo_BAJAR.Text & "." & Chr(10)
            End If

            ' LISTADO DE LOS INSTEAD
            'NW
            If InsteadLocalidades.txt_INSTEAD_LOCALIDAD_NW.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "Instead of going northwest in " & Main.txt_LOCALIDAD_NOMBRE.Text & ":" & Chr(10) & "say " & """" & InsteadLocalidades.txt_INSTEAD_LOCALIDAD_NW.Text & """" & "." & Chr(10)
            End If

            'N
            If InsteadLocalidades.txt_INSTEAD_LOCALIDAD_N.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "Instead of going north in " & Main.txt_LOCALIDAD_NOMBRE.Text & ":" & Chr(10) & "say " & """" & InsteadLocalidades.txt_INSTEAD_LOCALIDAD_N.Text & """" & "." & Chr(10)
            End If

            'NE
            If InsteadLocalidades.txt_INSTEAD_LOCALIDAD_NE.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "Instead of going northeast in " & Main.txt_LOCALIDAD_NOMBRE.Text & ":" & Chr(10) & "say " & """" & InsteadLocalidades.txt_INSTEAD_LOCALIDAD_NE.Text & """" & "." & Chr(10)
            End If

            'W
            If InsteadLocalidades.txt_INSTEAD_LOCALIDAD_W.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "Instead of going west in " & Main.txt_LOCALIDAD_NOMBRE.Text & ":" & Chr(10) & "say " & """" & InsteadLocalidades.txt_INSTEAD_LOCALIDAD_W.Text & """" & "." & Chr(10)
            End If

            'E
            If InsteadLocalidades.txt_INSTEAD_LOCALIDAD_E.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "Instead of going east in " & Main.txt_LOCALIDAD_NOMBRE.Text & ":" & Chr(10) & "say " & """" & InsteadLocalidades.txt_INSTEAD_LOCALIDAD_E.Text & """" & "." & Chr(10)
            End If

            'SW
            If InsteadLocalidades.txt_INSTEAD_LOCALIDAD_SW.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "Instead of going southwest in " & Main.txt_LOCALIDAD_NOMBRE.Text & ":" & Chr(10) & "say " & """" & InsteadLocalidades.txt_INSTEAD_LOCALIDAD_SW.Text & """" & "." & Chr(10)
            End If

            'S
            If InsteadLocalidades.txt_INSTEAD_LOCALIDAD_S.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "Instead of going south in " & Main.txt_LOCALIDAD_NOMBRE.Text & ":" & Chr(10) & "say " & """" & InsteadLocalidades.txt_INSTEAD_LOCALIDAD_S.Text & """" & "." & Chr(10)
            End If

            'SE
            If InsteadLocalidades.txt_INSTEAD_LOCALIDAD_SE.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "Instead of going southeast in " & Main.txt_LOCALIDAD_NOMBRE.Text & ":" & Chr(10) & "say " & """" & InsteadLocalidades.txt_INSTEAD_LOCALIDAD_SE.Text & """" & "." & Chr(10)
            End If

            'ENTRAR
            If InsteadLocalidades.txt_INSTEAD_LOCALIDAD_ENTRAR.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "Instead of going inside in " & Main.txt_LOCALIDAD_NOMBRE.Text & ":" & Chr(10) & "say " & """" & InsteadLocalidades.txt_INSTEAD_LOCALIDAD_ENTRAR.Text & """" & "." & Chr(10)
            End If

            'SALIR
            If InsteadLocalidades.txt_INSTEAD_LOCALIDAD_SALIR.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "Instead of going outside in " & Main.txt_LOCALIDAD_NOMBRE.Text & ":" & Chr(10) & "say " & """" & InsteadLocalidades.txt_INSTEAD_LOCALIDAD_SALIR.Text & """" & "." & Chr(10)
            End If

            'SUBIR
            If InsteadLocalidades.txt_INSTEAD_LOCALIDAD_SUBIR.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "Instead of going up in " & Main.txt_LOCALIDAD_NOMBRE.Text & ":" & Chr(10) & "say " & """" & InsteadLocalidades.txt_INSTEAD_LOCALIDAD_SUBIR.Text & """" & "." & Chr(10)
            End If

            'BAJAR
            If InsteadLocalidades.txt_INSTEAD_LOCALIDAD_BAJAR.Text <> "" Then
                Propiedades_de_la_localidad = Propiedades_de_la_localidad & "Instead of going down in " & Main.txt_LOCALIDAD_NOMBRE.Text & ":" & Chr(10) & "say " & """" & InsteadLocalidades.txt_INSTEAD_LOCALIDAD_BAJAR.Text & """" & "." & Chr(10)
            End If

        Else
            MsgBox("No has especificado ningún nombre para la localidad", , "ERROR: Sin nombre de localidad")
            Exit Sub
        End If

        Propiedades_de_la_localidad = Propiedades_de_la_localidad & "  [ ==== Fin Localidad: " & UCase(Main.txt_LOCALIDAD_NOMBRE.Text) & " ====]" & Chr(10) & Chr(10)

        ListarProp.Rtxt_Propiedades_Objetos.Text = Propiedades_de_la_localidad
        ListarProp.ShowDialog()


    End Sub
    Public Sub ListarPropiedadesObjetos()

        '[Que el nombre del objeto no esté en blanco, en caso contrario sale del sub]
        If Main.txt_Nombre_Objeto.Text <> "" Then
            Propiedades_del_Objeto = "  [ ==== OBJETO: " & UCase(Main.txt_Nombre_Objeto.Text) & " ====]" & Chr(10)

            Dim articulo As String
            Dim articulo_seleccionado As String = ""
            'Dim articulo_indefinite As String

            articulo = Main.cbo_ARTICULO.Text
            Select Case articulo
                Case Is = "el"
                    articulo_seleccionado = "The "
                Case Is = "la"
                    articulo_seleccionado = "The "
                Case Is = "un"
                    articulo_seleccionado = "A "
                Case Is = "una"
                    articulo_seleccionado = "A "
                Case Is = "unos"
                    articulo_seleccionado = "Some "
                Case Is = "unas"
                    articulo_seleccionado = "Some "
                Case Is = "algunos"
                    articulo_seleccionado = "Some "
                Case Is = "algunas"
                    articulo_seleccionado = "Some "
                Case Else
                    articulo_seleccionado = ""
            End Select

            '[El objeto es llevado al inicio]
            If Main.chk_Objeto_Llevada_Al_Inicio.Checked = True Then
                Propiedades_del_Objeto = Propiedades_del_Objeto & articulo_seleccionado & Main.txt_Nombre_Objeto.Text & " is carried by the player." & Chr(10)
            ElseIf Main.cbo_LOCALIZACION_OBJETO.Text = "aquí" Or Main.cbo_LOCALIZACION_OBJETO.Text = "AQUÍ" Then
                Propiedades_del_Objeto = Propiedades_del_Objeto & articulo_seleccionado & Main.txt_Nombre_Objeto.Text & " is here." & Chr(10)
            ElseIf Main.cbo_LOCALIZACION_OBJETO.Text <> "" Then
                Propiedades_del_Objeto = Propiedades_del_Objeto & articulo_seleccionado & Main.txt_Nombre_Objeto.Text & " is in " & Main.cbo_LOCALIZACION_OBJETO.Text & "." & Chr(10)
            Else
                MsgBox("Este objeto está fuera de escena", , "ADVERTENCIA")
            End If



            ' Se muestra el gráfico del objeto
            If Main.lbl_RUTA_DEL_GRAFICO_OBJETOS.Text <> "" Then
                ' Creamos la definición del fichero donde se aloja el gráfico
                Propiedades_del_Objeto = Propiedades_del_Objeto & "Figure of " & Main.txt_Nombre_Objeto.Text & " is the file " & """" & Main.lbl_RUTA_DEL_GRAFICO_OBJETOS.Text & """" & "." & Chr(10)
            End If



            If articulo_seleccionado <> "" Then
                Propiedades_del_Objeto = Propiedades_del_Objeto & "The indefinite article of " & Main.txt_Nombre_Objeto.Text & " is " & """" & articulo & """" & "." & Chr(10)

            End If

            '[El objeto es femenino]
            If Main.chk_Objeto_Femenino.Checked = True Then
                Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is female." & Chr(10)
            Else
            End If

            Propiedades_del_Objeto = Propiedades_del_Objeto & "A thing can be examined or unexamined." & Chr(10)
        Else
            MsgBox("No has especificado ningún nombre para el objeto", , "ERROR: Sin nombre de objeto")
            Exit Sub
        End If



        '[Que el texto impreso no esté en blanco]
        If Main.txt_Nombre_Impreso_Objeto.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "The printed name is " & """" & Main.txt_Nombre_Impreso_Objeto.Text & """" & "." & Chr(10)
        Else
        End If

        '[Que la apariencia inicial no esté en blanco]
        If Main.txt_Objeto_Apariencia_Inicial.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "The initial appearance is " & """" & Main.txt_Objeto_Apariencia_Inicial.Text & """" & "." & Chr(10)
        Else
        End If


        ' Mostrar el gráfico del objeto la primera vez que se examina
        If Main.lbl_RUTA_DEL_GRAFICO_OBJETOS.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Carry out examining " & Main.txt_Nombre_Objeto.Text & " for the first time:" & Chr(10)
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Display the figure of " & Main.txt_Nombre_Objeto.Text & "." & Chr(10)
        End If



        '[Que el objeto sea examinado]
        Propiedades_del_Objeto = Propiedades_del_Objeto & "Carry out examining " & Main.txt_Nombre_Objeto.Text & " for the second time: now " & Main.txt_Nombre_Objeto.Text & " is examined." & Chr(10)

        '[Descripción del objeto primera y segunda vez]
        If Main.txt_Objeto_Descripción_Inicial.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "The description is " & """" & "[if unexamined]" & Main.txt_Objeto_Descripción_Inicial.Text & "[else]" & Main.txt_Objeto_Apariencia_Una_Vez_Examinado.Text & """" & "." & Chr(10)
        Else
        End If

        '*******************************
        ' PROPIEDADES DEL OBJETO EN SÍ
        '*******************************


        '[El objeto es una llave que abre una puerta]
        'TODO: ---> VER EL TEMA DE LAS PUERTAS, COMBOBOX]

        If Main.chk_Objeto_Llave.Checked = True Then
            If Main.cbo_PUERTA_CON_LLAVE.Text = "" Then
                MsgBox("No olvides poner cual es la puerta que abre.", , "Nombre de puerta sin especificar...")
            End If
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " unlocks " & Main.cbo_PUERTA_CON_LLAVE.Text & "." & Chr(10)
        Else
        End If

        '[El objeto es un contenedor]
        'TODO: si contenedor... no otras cosas
        If Main.chk_Objeto_Contenedor.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is a container." & Chr(10)
        Else
        End If

        '[El objeto es un contenedor aperturable]
        'TODO: si contenedor... no otras cosas
        If Main.chk_Objeto_Aperturable.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is a openable." & Chr(10)
        Else
        End If

        '[El objeto es un contenedor cerrado]
        'TODO: si contenedor... no otras cosas
        If Main.chk_Objeto_Cerrado.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is a closed." & Chr(10)
        Else
        End If

        '[El objeto es un contenedor cerrado con llave]
        'TODO: si contenedor... no otras cosas
        If Main.chk_Objeto_Cerrado_Con_llave.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is a locked." & Chr(10)
        Else
        End If

        '[Capacidad de Carga del objeto]

        If Main.chk_Objeto_Capacidad_De_Carga.Checked = True And Main.txt_Objeto_Capacidad_De_Carga.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Carrying capacity is " & Main.txt_Objeto_Capacidad_De_Carga.Text & "." & Chr(10)
        Else
        End If

        '[El objeto es comestible]
        If Main.chk_Objeto_Comestible.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is edible." & Chr(10)
        Else
        End If

        '[El objeto es entrable]
        'TODO: Para ser entrable, necesita ser contenedor.
        If Main.chk_Objeto_Entrable.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is enterable." & Chr(10)
        Else
        End If

        '[El objeto es llevable puesto]
        If Main.chk_Objeto_Llevable_Puesto.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is wearable." & Chr(10)
        Else
        End If

        '[El objeto es escenario]
        If Main.chk_Objeto_Escenario.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is scenery." & Chr(10)
        Else
        End If

        '[El objeto es empujable]
        If Main.chk_Objeto_Empujable.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is pushable between rooms." & Chr(10)
        Else
        End If

        '[El objeto está fijo en un sitio]
        If Main.chk_Objeto_Fijo_En_El_Sitio.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is fixed in place." & Chr(10)
        Else
        End If

        '[El objeto es portable]
        If Main.chk_Objeto_Portable.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is portable." & Chr(10)
        Else
        End If

        '[El objeto ha sido cogido]
        If Main.chk_Objeto_Cogido.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is handled." & Chr(10)
        Else
        End If

        '[El objeto es transparente]
        If Main.chk_Objeto_Transparente.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is transparent." & Chr(10)
        Else
        End If

        '[El objeto es luminoso]
        If Main.chk_Objeto_Luminoso.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is lit." & Chr(10)
        Else
        End If

        '[El objeto está encendido]
        If Main.chk_Objeto_Interruptor_ON.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is a device." & Chr(10)
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is switched on." & Chr(10)
        Else
        End If

        '[El objeto está apagado]
        If Main.chk_Objeto_Interruptor_OFF.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is a device." & Chr(10)
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is switched off." & Chr(10)
        Else
        End If


        '[El objeto es ubicuo]
        If Main.chk_Objeto_Ubicuo.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is a backdrop." & Chr(10)
        Else
        End If

        '[El objeto está en todas partes]
        If Main.chk_Objeto_En_Todas_Partes.Checked = True Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & Main.txt_Nombre_Objeto.Text & " is everywhere." & Chr(10)
        Else
        End If
        '*******************************
        ' PROPIEDADES INSTEAD
        '*******************************

        '[TALKING]
        If Main.txt_Objeto_Instead_Taking.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of taking " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Taking.Text & """" & "." & Chr(10)
        Else
        End If

        '[DROPING]
        If Main.txt_Objeto_Instead_Droping.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of dropping " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Droping.Text & """" & "." & Chr(10)
        Else
        End If

        '[EATING]
        If Main.txt_Objeto_Instead_Eating.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of eating " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Eating.Text & """" & "." & Chr(10)
        Else
        End If

        '[DRINKING]
        If Main.txt_Objeto_Instead_Drinking.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of drinking " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Drinking.Text & """" & "." & Chr(10)
        Else
        End If

        '[LOOKING UNDER]
        If Main.txt_Objeto_Instead_Looking_Under.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of looking under " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Looking_Under.Text & """" & "." & Chr(10)
        Else
        End If

        '[SEARCHING]
        If Main.txt_Objeto_Instead_Searching.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of searching " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Searching.Text & """" & "." & Chr(10)
        Else
        End If

        '[SWITCHING ON]
        If Main.txt_Objeto_Instead_Switching_On.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of switching on " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Switching_On.Text & """" & "." & Chr(10)
        Else
        End If

        '[SWITCHING OFF]
        If Main.txt_Objeto_Instead_Switching_Off.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of switching off " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Switching_Off.Text & """" & "." & Chr(10)
        Else
        End If

        '[OPENING]
        If Main.txt_Objeto_Instead_Opening.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of opening " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Opening.Text & """" & "." & Chr(10)
        Else
        End If

        '[CLOSING]
        If Main.txt_Objeto_Instead_Closing.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of closing " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Closing.Text & """" & "." & Chr(10)
        Else
        End If

        '[WEARING]
        If Main.txt_Objeto_Instead_Wearing.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of wearing " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Wearing.Text & """" & "." & Chr(10)
        Else
        End If

        '[TAKING OFF]
        If Main.txt_Objeto_Instead_Taking_Off.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of taking off " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Taking_Off.Text & """" & "." & Chr(10)
        Else
        End If

        '[ATTACKING]
        If Main.txt_Objeto_Instead_Attacking.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of attacking " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Attacking.Text & """" & "." & Chr(10)
        Else
        End If

        '[KISSING]
        If Main.txt_Objeto_Instead_Kissing.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of kissing " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Kissing.Text & """" & "." & Chr(10)
        Else
        End If

        '[TOUCHING]
        If Main.txt_Objeto_Instead_Touching.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of touching " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Touching.Text & """" & "." & Chr(10)
        Else
        End If

        '[WAVING]
        If Main.txt_Objeto_Instead_Waving.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of waving " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Waving.Text & """" & "." & Chr(10)
        Else
        End If

        '[PULLING]
        If Main.txt_Objeto_Instead_Pulling.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of pulling " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Pulling.Text & """" & "." & Chr(10)
        Else
        End If

        '[PUSHING]
        If Main.txt_Objeto_Instead_Pushing.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of pushing " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Pushing.Text & """" & "." & Chr(10)
        Else
        End If

        '[TURNING]
        If Main.txt_Objeto_Instead_Turning.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of turning " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Turning.Text & """" & "." & Chr(10)
        Else
        End If

        '[SQUEEZING]
        If Main.txt_Objeto_Instead_Squeezing.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of squeezing " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Squeezing.Text & """" & "." & Chr(10)
        Else
        End If

        '[BURNING]
        If Main.txt_Objeto_Instead_Burning.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of burning " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Burning.Text & """" & "." & Chr(10)
        Else
        End If

        '[SMELLING]
        If Main.txt_Objeto_Instead_Smelling.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of smelling " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Smelling.Text & """" & "." & Chr(10)
        Else
        End If

        '[TASTING]
        If Main.txt_Objeto_Instead_Tasting.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of tasting " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Tasting.Text & """" & "." & Chr(10)
        Else
        End If

        '[BUYING]
        If Main.txt_Objeto_Instead_Buying.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of buying " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Buying.Text & """" & "." & Chr(10)
        Else
        End If

        '[LISTENING TO]
        If Main.txt_Objeto_Instead_Listening.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of listening to " & Main.txt_Nombre_Objeto.Text & ", say " & """" & Main.txt_Objeto_Instead_Listening.Text & """" & "." & Chr(10)
        Else
        End If


        ' ***********************
        ' ACCIONES INSTEAD CON DOS OBJETOS
        ' **********************
        If Main.txt_Objeto_Instead_Removing_From.Text <> "" And Main.txt_Nombre_ObjetoII.Text <> "" Then
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Instead of removing " & Main.txt_Nombre_Objeto.Text & " from " & Main.txt_Nombre_ObjetoII.Text & ", say " & """" & Main.txt_Objeto_Instead_Removing_From.Text & """" & "." & Chr(10)
        End If


        '*******************************
        ' SINÓNIMOS
        '*******************************


        Dim N As Integer
        For N = 0 To Sinónimos.lsb_SINONIMOS_Objetos.Items.Count - 1
            Propiedades_del_Objeto = Propiedades_del_Objeto & "Understand " & """" & Sinónimos.lsb_SINONIMOS_Objetos.Items(N) & """" & " as " & Main.txt_Nombre_Objeto.Text & "." & Chr(10)
        Next

        Propiedades_del_Objeto = Propiedades_del_Objeto & "  [ ==== Fin Descripcion de " & UCase(Main.txt_Nombre_Objeto.Text) & " ====]" & Chr(10) & Chr(10)

        ListarProp.Rtxt_Propiedades_Objetos.Text = Propiedades_del_Objeto
        ListarProp.ShowDialog()






    End Sub
    Public Sub ListarPsis()
        Propiedades_Psis = "    [ === PROPIEDADES DEL PSI: " & Main.txt_Nombre_PSI.Text & "=== ]" & Chr(10) & Chr(10)

        '[El objeto es un Hombre]
        If Main.rbt_Hombre.Checked = True Then
            Propiedades_Psis = Propiedades_Psis & Main.txt_Nombre_PSI.Text & " is a man." & Chr(10)
        Else
        End If

        '[El objeto es una Mujer]
        If Main.rbt_Mujer.Checked = True Then
            Propiedades_Psis = Propiedades_Psis & Main.txt_Nombre_PSI.Text & " is a woman." & Chr(10)
        Else
        End If

        '[El objeto es un Animal]
        If Main.rbt_Animal.Checked = True Then
            Propiedades_Psis = Propiedades_Psis & Main.txt_Nombre_PSI.Text & " is an animal." & Chr(10)
        Else
        End If


        '[Comienzo de la impresión de la localización del PSI]
        If Main.cbo_LOCALIZACION_PSI.Text <> "" Then
            If Main.cbo_LOCALIZACION_PSI.Text = "aquí" Or Main.cbo_LOCALIZACION_PSI.Text = "Aquí" Or Main.cbo_LOCALIZACION_PSI.Text = "AQUÍ" Or Main.cbo_LOCALIZACION_PSI.Text = "aqui" Or Main.cbo_LOCALIZACION_PSI.Text = "Aqui" Or Main.cbo_LOCALIZACION_PSI.Text = "AQUI" Then
                Propiedades_Psis = Propiedades_Psis & Main.txt_Nombre_PSI.Text & " is here." & Chr(10) & Chr(10)
            Else
                Propiedades_Psis = Propiedades_Psis & Main.txt_Nombre_PSI.Text & " is in " & Main.cbo_LOCALIZACION_PSI.Text & "." & Chr(10) & Chr(10)
            End If
        End If

        '[Comienzo de la impresión DESCRIPCIONES DEL PSI]
        '[Que el texto impreso no esté en blanco]
        If Main.txt_PSI_NOMBRE_IMPRESO.Text <> "" Then
            Propiedades_Psis = Propiedades_Psis & "The printed name is " & """" & Main.txt_PSI_NOMBRE_IMPRESO.Text & """" & "." & Chr(10)
        Else
        End If



        '[Que la apariencia inicial no esté en blanco]
        If Main.txt_PSI_APARIENCIA_INICIAL.Text <> "" Then
            Propiedades_Psis = Propiedades_Psis & "The initial appearance is " & """" & Main.txt_PSI_APARIENCIA_INICIAL.Text & """" & "." & Chr(10)
        Else
        End If

        '[Nos aseguramos de que un ser pueda ser examinado]
        Propiedades_Psis = Propiedades_Psis & Main.txt_Nombre_PSI.Text & " can be examined or unexamined." & Chr(10) & Chr(10)

        ' Se muestra el gráfico y para la primera y segunda vez. Y en cualquier caso el PSI es examinado
        If Main.lbl_RUTA_DEL_GRAFICO_PSIs.Text <> "" Then

            ' Creamos la definición del fichero donde se aloja el gráfico
            Propiedades_Psis = Propiedades_Psis & "Figure of " & Main.txt_Nombre_PSI.Text & " is the file " & """" & Main.lbl_RUTA_DEL_GRAFICO_PSIs.Text & """" & "." & Chr(10) & Chr(10)

            '1ª Examen
            Propiedades_Psis = Propiedades_Psis & "Carry out examining " & Main.txt_Nombre_PSI.Text & " for the first time:" & Chr(10)
            Propiedades_Psis = Propiedades_Psis & "Display the figure of " & Main.txt_Nombre_PSI.Text & "." & Chr(10) & Chr(10)
            '2º Examen
            Propiedades_Psis = Propiedades_Psis & "Carry out examining " & Main.txt_Nombre_PSI.Text & " for the second time:" & Chr(10)
            Propiedades_Psis = Propiedades_Psis & "Display the figure of " & Main.txt_Nombre_PSI.Text & ";" & Chr(10)
            Propiedades_Psis = Propiedades_Psis & "now " & Main.txt_Nombre_PSI.Text & " is examined." & Chr(10)
        Else
            '[Que el objeto sea examinado]
            Propiedades_Psis = Propiedades_Psis & "Carry out examining " & Main.txt_Nombre_PSI.Text & " for the second time: now " & Main.txt_Nombre_PSI.Text & " is examined." & Chr(10)
        End If



        '[Descripción del objeto primera y segunda vez]
        If Main.txt_PSI_DESCRIPCION_INICIAL.Text <> "" Then
            Propiedades_Psis = Propiedades_Psis & "The description is " & """" & "[if unexamined]" & Main.txt_PSI_DESCRIPCION_INICIAL.Text & "[else]" & Main.txt_PSI_DESCRIPCION_UNA_VEZ_EXAMINADO.Text & """" & "." & Chr(10)
        Else
        End If

        Propiedades_Psis = Propiedades_Psis & Chr(10)


        '[Comienzo de impresión de la Tabla de Pre_Respuestas Aleatorias]
        Propiedades_Psis = Propiedades_Psis & "Table of PreRespuestas Aleatorias de " & Main.txt_Nombre_PSI.Text & Chr(10)
        Propiedades_Psis = Propiedades_Psis & "Respuesta" & Chr(10)
        '------------------------------------------------------------------------------------
        ' ESTA PARTE SE ELMININA PORQUE ES LA QUE HACE REFERENCIA AL DATAGRID.

        'Dim k As Integer

        'For k = 0 To Main.datagrid_PRERESPUESTAS_ALEATORIAS_PSIs.Rows.Count - 1
        '    If Main.datagrid_PRERESPUESTAS_ALEATORIAS_PSIs.Rows.Item(k).Cells(0).Value <> "" Then
        '        Propiedades_Psis = Propiedades_Psis & """" & Main.datagrid_PRERESPUESTAS_ALEATORIAS_PSIs.Rows.Item(k).Cells(0).Value & """" & Chr(10)
        '    End If
        'Next
        'Propiedades_Psis = Propiedades_Psis & Chr(10)
        '------------------------------------------------------------------------------------

        Dim k As Integer
        For k = 0 To Main.lsb_PRE_RESPUESTAS_ALEATORIAS.Items.Count - 1
            Main.lsb_PRE_RESPUESTAS_ALEATORIAS.SelectedIndex = k
            If Main.lsb_PRE_RESPUESTAS_ALEATORIAS.SelectedItem <> "" Then
                Propiedades_Psis = Propiedades_Psis & """" & Main.lsb_PRE_RESPUESTAS_ALEATORIAS.SelectedItem & """" & Chr(10)
            End If
        Next
        Propiedades_Psis = Propiedades_Psis & Chr(10)



        '[Comienzo de impresión de la Tabla de Respuestas Aleatorias]
        Propiedades_Psis = Propiedades_Psis & "Table of Respuestas Aleatorias de " & Main.txt_Nombre_PSI.Text & Chr(10)
        Propiedades_Psis = Propiedades_Psis & "Respuesta" & Chr(10)

        '------------------------------------------------------------------------------------
        ' ESTA PARTE SE ELMININA PORQUE ES LA QUE HACE REFERENCIA AL DATAGRID.
        'Dim m As Integer
        'For m = 0 To Main.datagrid_RESPUESTAS_ALEATORIAS_PSIs.Rows.Count - 1
        '    If Main.datagrid_RESPUESTAS_ALEATORIAS_PSIs.Rows.Item(m).Cells(0).Value <> "" Then
        '        Propiedades_Psis = Propiedades_Psis & """" & Main.datagrid_RESPUESTAS_ALEATORIAS_PSIs.Rows.Item(m).Cells(0).Value & """" & Chr(10)
        '    End If
        'Next
        'Propiedades_Psis = Propiedades_Psis & Chr(10)
        '------------------------------------------------------------------------------------


        Dim m As Integer
        For m = 0 To Main.lsb_RESPUESTAS_ALEATORIAS.Items.Count - 1
            Main.lsb_RESPUESTAS_ALEATORIAS.SelectedIndex = m
            If Main.lsb_RESPUESTAS_ALEATORIAS.SelectedItem <> "" Then
                Propiedades_Psis = Propiedades_Psis & """" & Main.lsb_RESPUESTAS_ALEATORIAS.SelectedItem & """" & Chr(10)
            End If
        Next
        Propiedades_Psis = Propiedades_Psis & Chr(10)

        '[Comienzo de impresión de la Tabla de Respuestas]
        Propiedades_Psis = Propiedades_Psis & "Table of Respuestas de " & Main.txt_Nombre_PSI.Text & Chr(10)
        Propiedades_Psis = Propiedades_Psis & "Topic" & Chr(9) & "Respuesta" & Chr(10)


        Dim i As Integer
        Try

            For i = 0 To Main.lsb_PSIS_TOPICO.Items.Count - 1
                Propiedades_Psis = Propiedades_Psis & """" & Main.lsb_PSIS_TOPICO.Items(i) & """"
                Propiedades_Psis = Propiedades_Psis & " or " & """" & UCase(Main.lsb_PSIS_TOPICO.Items(i)) & """"
                Propiedades_Psis = Propiedades_Psis & " or " & """" & LCase(Main.lsb_PSIS_TOPICO.Items(i)) & """"
                Propiedades_Psis = Propiedades_Psis & " or " & """" & StrConv(LCase(Main.lsb_PSIS_TOPICO.Items(i)), VbStrConv.ProperCase) & """"
                '--- AQUÍ VA EL CÓDIGO.
                '==============================================================================================
                'COMENTARIOS. Procedimiento encargado de CARGAR LOS SINONIMOS DEL TOPICO
                '==============================================================================================
                'Se establece la conexión con la base de datos.
                Dim sCnn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & txtBase
                Dim ODbConn As New OleDb.OleDbConnection(sCnn)
                ODbConn.Open()

                Dim Command As New OleDb.OleDbCommand("SELECT * FROM PSIS_SINONIMOS_TOPICOS WHERE topico = " & "'" & Main.lsb_PSIS_TOPICO.Items(i) & "'", ODbConn)
                Dim DataReader As OleDb.OleDbDataReader = Command.ExecuteReader(CommandBehavior.CloseConnection)

                While DataReader.Read
                    Propiedades_Psis = Propiedades_Psis & " or " & """" & DataReader.Item("sinonimo") & """"
                    Propiedades_Psis = Propiedades_Psis & " or " & """" & UCase(DataReader.Item("sinonimo")) & """"
                    Propiedades_Psis = Propiedades_Psis & " or " & """" & LCase(DataReader.Item("sinonimo")) & """"
                    Propiedades_Psis = Propiedades_Psis & " or " & """" & StrConv((UCase(DataReader.Item("sinonimo"))), VbStrConv.ProperCase) & """"
                End While
                '---
                Propiedades_Psis = Propiedades_Psis & Chr(9) & """" & Main.lsb_PSIS_RESPUESTA.Items(i) & """" & Chr(13)
                ODbConn.Close()
            Next

            '-------- RESPUESTAS DEFINIDAS EN EL DATA GRID
            'Dim n As Integer
            'Try
            '    For n = 0 To Main.datagrid_RESPUESTAS_PSIs.Rows.Count - 1
            '        If Main.datagrid_RESPUESTAS_PSIs.Rows.Item(n).Cells(0).Value <> "" And Main.datagrid_RESPUESTAS_PSIs.Rows.Item(n).Cells(1).Value <> "" Then
            '            Propiedades_Psis = Propiedades_Psis & """" & Main.datagrid_RESPUESTAS_PSIs.Rows.Item(n).Cells(0).Value & """" & Chr(9) & """" & Main.datagrid_RESPUESTAS_PSIs.Rows.Item(n).Cells(1).Value & """" & Chr(10)
            '        End If
            '    Next

            'RESPUESTAS PRE-DEFINIDAS
            '    ' :TODO CORREGIR EL PROBLEMA DEL DBNULL
            '    For n = 0 To Main.DataGrid_PSIS_RESPUESTAS_PREDEFINIDAS.Rows.Count - 1
            '        If Main.DataGrid_PSIS_RESPUESTAS_PREDEFINIDAS.Rows.Item(n).Cells(0).Value <> "" And Main.DataGrid_PSIS_RESPUESTAS_PREDEFINIDAS.Rows.Item(n).Cells(1).Value <> "" Then
            '            Propiedades_Psis = Propiedades_Psis & """" & Main.DataGrid_PSIS_RESPUESTAS_PREDEFINIDAS.Rows.Item(n).Cells(0).Value & """" & Chr(9) & """" & Main.DataGrid_PSIS_RESPUESTAS_PREDEFINIDAS.Rows.Item(n).Cells(1).Value & """" & Chr(10)
            '        End If
            '    Next

            ' --------  FIN DE LAS RESPUESTAS DE LOS DATA GRIDS

            Propiedades_Psis = Propiedades_Psis & Chr(10) & Chr(10)


            '[Hacer que decir sea lo mismo que responder]

            Propiedades_Psis = Propiedades_Psis & "Instead of answering " & Main.txt_Nombre_PSI.Text & " that something:" & Chr(10)
            Propiedades_Psis = Propiedades_Psis & "try asking the noun about it." & Chr(10) & Chr(10)

            '[Respuesta aleatoria para algo no tabulado]
            Propiedades_Psis = Propiedades_Psis & "Instead of asking " & Main.txt_Nombre_PSI.Text & " about something:" & Chr(10)
            Propiedades_Psis = Propiedades_Psis & "choose a random row in Table of PreRespuestas Aleatorias de " & Main.txt_Nombre_PSI.Text & ";" & Chr(10)
            Propiedades_Psis = Propiedades_Psis & "say " & """" & "[Bold type]" & "[respuesta entry]" & "[Roman type]" & """" & ";" & Chr(10)
            Propiedades_Psis = Propiedades_Psis & "choose a random row in Table of Respuestas Aleatorias de " & Main.txt_Nombre_PSI.Text & ";" & Chr(10)
            Propiedades_Psis = Propiedades_Psis & "say " & """" & "[Italic type]'" & "[respuesta entry]" & "'[Roman type]" & """" & "." & Chr(10) & Chr(10)

            '[Instead para algo que sí está en la tabla]
            Propiedades_Psis = Propiedades_Psis & "Instead of asking " & Main.txt_Nombre_PSI.Text & " about a topic listed in the Table of Respuestas de " & Main.txt_Nombre_PSI.Text & ":" & Chr(10)
            Propiedades_Psis = Propiedades_Psis & "say " & """" & "[Bold type][one of]"


            '---------
            'If Main.datagrid_PRERESPUESTAS_ALEATORIAS_PSIs.Rows.Count - 1 = 0 Then
            '    Propiedades_Psis = Propiedades_Psis & Main.datagrid_PRERESPUESTAS_ALEATORIAS_PSIs.Rows.Item(0).Cells(0).Value
            'Else
            '    For k = 0 To Main.datagrid_PRERESPUESTAS_ALEATORIAS_PSIs.Rows.Count - 1
            '        If Main.datagrid_PRERESPUESTAS_ALEATORIAS_PSIs.Rows.Item(k).Cells(0).Value <> "" And k <> Main.datagrid_PRERESPUESTAS_ALEATORIAS_PSIs.Rows.Count - 2 Then
            '            Propiedades_Psis = Propiedades_Psis & Main.datagrid_PRERESPUESTAS_ALEATORIAS_PSIs.Rows.Item(k).Cells(0).Value & "[or]"
            '        ElseIf Main.datagrid_PRERESPUESTAS_ALEATORIAS_PSIs.Rows.Count - 2 = k Then
            '            Propiedades_Psis = Propiedades_Psis & Main.datagrid_PRERESPUESTAS_ALEATORIAS_PSIs.Rows.Item(k).Cells(0).Value
            '        End If

            '    Next

            'End If

            If Main.lsb_PRE_RESPUESTAS_ALEATORIAS.Items.Count - 1 = 0 Then
                '   Propiedades_Psis = Propiedades_Psis & Main.datagrid_PRERESPUESTAS_ALEATORIAS_PSIs.Rows.Item(0).Cells(0).Value
            Else
                For k = 0 To Main.lsb_PRE_RESPUESTAS_ALEATORIAS.Items.Count - 1
                    If Main.lsb_PRE_RESPUESTAS_ALEATORIAS.Items(k) <> "" And k <> Main.lsb_PRE_RESPUESTAS_ALEATORIAS.Items.Count - 2 Then
                        Propiedades_Psis = Propiedades_Psis & Main.lsb_PRE_RESPUESTAS_ALEATORIAS.Items(k) & "[or]"
                    ElseIf Main.lsb_PRE_RESPUESTAS_ALEATORIAS.Items.Count - 2 = k Then
                        Propiedades_Psis = Propiedades_Psis & Main.lsb_PRE_RESPUESTAS_ALEATORIAS.Items(k)
                    End If

                Next

            End If
            Propiedades_Psis = Propiedades_Psis & "[in random order]"

            Propiedades_Psis = Propiedades_Psis & "[Italic type]" & " '" & "[respuesta entry]" & "'" & "[Roman type]." & """" & "." & Chr(10) & Chr(10)

            Dim G As Integer = 0
            Dim CadenaDeSinónimos = ""
            For G = 0 To SinonimosPSIs.lsb_SINONIMOS_PSIS.Items.Count - 1
                CadenaDeSinónimos = CadenaDeSinónimos & "Understand " & """" & SinonimosPSIs.lsb_SINONIMOS_PSIS.Items(G) & """" & " as " & SinonimosPSIs.txt_SINONIMOS_PSIS.Text & "." & Chr(10)
            Next
            Propiedades_Psis = Propiedades_Psis & CadenaDeSinónimos
            Propiedades_Psis = Propiedades_Psis & Chr(10) & Chr(10)



            ' INSTEADS DE LOS PSI.
            ' En lugar de coger al PSI.
            If Main.chk_PSI_COGERLO.Checked = True Then
                Propiedades_Psis = Propiedades_Psis & "Instead of taking " & Main.txt_Nombre_PSI.Text & ":" & Chr(10)
                If Main.txt_PSI_INSTEAD_ESCRIBE_COGER_A.Text <> "" Then
                    Propiedades_Psis = Propiedades_Psis & "say " & """" & Main.txt_PSI_INSTEAD_ESCRIBE_COGER_A.Text & """" & ";" & Chr(10)
                    Propiedades_Psis = Propiedades_Psis & "now " & Main.txt_Nombre_PSI.Text & " is carried by the player." & Chr(10)
                Else
                    Propiedades_Psis = Propiedades_Psis & "now " & Main.txt_Nombre_PSI.Text & " is carried by the player." & Chr(10)
                End If
            End If
            If Main.chk_PSI_COGERLO.Checked = False Then
                If Main.txt_PSI_INSTEAD_ESCRIBE_COGER_A.Text <> "" Then
                    Propiedades_Psis = Propiedades_Psis & "Instead of taking " & Main.txt_Nombre_PSI.Text & ":" & Chr(10)
                    Propiedades_Psis = Propiedades_Psis & "say " & """" & Main.txt_PSI_INSTEAD_ESCRIBE_COGER_A.Text & """" & "." & Chr(10)
                Else
                End If

            End If

            ' Dar un objeto al PSI.
            If Main.chk_PSI_DAR_OBJETO.Checked = True Then
                Propiedades_Psis = Propiedades_Psis & "Instead of giving " & Main.txt_PSI_OBJETO_QUE_SE_LE_DA.Text & " to " & Main.txt_Nombre_PSI.Text & " when " & Main.txt_PSI_OBJETO_QUE_SE_LE_DA.Text & " is carried by the player:" & Chr(10)
                If Main.txt_PSI_ESCRIBE_DAR_OBJETO.Text <> "" Then
                    Propiedades_Psis = Propiedades_Psis & "say " & """" & Main.txt_PSI_ESCRIBE_DAR_OBJETO.Text & """" & ";" & Chr(10)
                    Propiedades_Psis = Propiedades_Psis & "now " & Main.txt_Nombre_PSI.Text & " has the " & Main.txt_PSI_OBJETO_QUE_SE_LE_DA.Text & "." & Chr(10)
                Else
                    Propiedades_Psis = Propiedades_Psis & "now " & Main.txt_Nombre_PSI.Text & " has the " & Main.txt_PSI_OBJETO_QUE_SE_LE_DA.Text & "." & Chr(10)
                End If
            End If
            If Main.chk_PSI_DAR_OBJETO.Checked = False Then
                If Main.txt_PSI_ESCRIBE_DAR_OBJETO.Text <> "" Then
                    Propiedades_Psis = Propiedades_Psis & "Instead of giving " & Main.txt_PSI_OBJETO_QUE_SE_LE_DA.Text & " to " & Main.txt_Nombre_PSI.Text & " when " & Main.txt_PSI_OBJETO_QUE_SE_LE_DA.Text & " is carried by the player:" & Chr(10)
                    Propiedades_Psis = Propiedades_Psis & "say " & """" & Main.txt_PSI_ESCRIBE_DAR_OBJETO.Text & """" & "." & Chr(10)
                Else
                End If

            End If

            ' FIN DE LAS PROPIEDADES DEL PSI
            Propiedades_Psis = Propiedades_Psis & "    [ === Fin Propiedades del psi: " & Main.txt_Nombre_PSI.Text & "=== ]" & Chr(10) & Chr(10)

            ListarProp.Rtxt_Propiedades_Objetos.Text = Propiedades_Psis

            ListarProp.ShowDialog()
        Catch oMsg As Exception
            MsgBox("Se ha producido un error no contemplado, por favor informa a Jhames de este código: " & Chr(10) & oMsg.Message, MsgBoxStyle.Critical)
        End Try
    End Sub
    Public Sub GenerarMapa()

        Propiedades_del_Mapa = "[  == GENERADOR DE MAPAS ===  ]" & Chr(10) & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "Index map with" & Chr(10)

        Propiedades_del_Mapa = Propiedades_del_Mapa & "font set to " & """" & "Arial" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "minimum-map-width set to " & "10" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "title set to " & """" & "Titulo en Rojo" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "title-size set to " & "10" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "title-font set to " & """" & "Arial" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "title-colour set to " & """" & "Red" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "map-outline set to " & "on" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "border-size set to " & "30" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "vertical-spacing set to " & "30" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "monochrome set to " & "on" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "annotation-size set to " & "30" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "annotation-length set to " & "30" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "annotation-font set to " & """" & "Arial" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "subtitle set to " & """" & "Arial" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "subtitle-size set to " & "30" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "subtitle-font set to " & """" & "Arial" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "subtitle-colour set to " & """" & "Arial" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "grid-size set to " & "30" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "route-stiffness set to " & "30" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "route-thickness set to " & "30" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "route-colour set to " & """" & "Arial" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "room-offset set to " & """" & "Arial" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "room-size set to " & "30" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "room-colour set to " & """" & "Arial" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "room-name set to " & """" & "Arial" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "room-name-size set to " & "30" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "room-name-font set to " & """" & "Arial" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "room-name-colour set to " & """" & "Arial" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "room-name-length set to " & "30" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "room-name-offset set to " & "30" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "room-outline set to " & "on" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "room-outline-colour set to " & """" & "Arial" & """" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "room-outline-thickness set to " & "30" & "," & Chr(10)
        Propiedades_del_Mapa = Propiedades_del_Mapa & "room-shape set to " & """" & "Arial" & """" & "," & Chr(10)

        Propiedades_del_Mapa = Propiedades_del_Mapa & "EPS file. " & Chr(10)
        ListarProp.Rtxt_Propiedades_Objetos.Text = Propiedades_del_Mapa
        ListarProp.ShowDialog()
    End Sub
    Public Sub FiltrarTextoFuente()
        Dim n As Boolean = False
        Dim m As Integer = 1
        Dim j As Boolean = False

        Main.ProgressBarFiltrarListado.Minimum = 0
        Main.ProgressBarFiltrarListado.Maximum = Len(Main.rtxt_TEXTO_FUENTE_ORIGINAL.Text)

        Dim TextoPuro As String = ""
        For m = 1 To Len(Main.rtxt_TEXTO_FUENTE_ORIGINAL.Text)
            If n = False Then
                If Mid(Main.rtxt_TEXTO_FUENTE_ORIGINAL.Text, m, 1) = """" Then
                    n = True
                End If
            ElseIf n = True Then

                If Mid(Main.rtxt_TEXTO_FUENTE_ORIGINAL.Text, m, 1) = """" Then
                    n = False
                    TextoPuro = TextoPuro & Chr(10)
                    GoTo salir
                End If
                If j = False Then
                    If Mid(Main.rtxt_TEXTO_FUENTE_ORIGINAL.Text, m, 1) = "[" Then
                        j = True
                        GoTo salir
                    End If
                    TextoPuro = TextoPuro & Mid(Main.rtxt_TEXTO_FUENTE_ORIGINAL.Text, m, 1)
                ElseIf j = True Then

                    If Mid(Main.rtxt_TEXTO_FUENTE_ORIGINAL.Text, m, 1) = "]" Then
                        j = False
                    End If

                End If
salir:
            End If
            Main.ProgressBarFiltrarListado.Value = m
        Next m
        Main.ProgressBarFiltrarListado.Value = 0
        MsgBox("Proceso completado", , "Fin del filtrado")
        Main.rtxt_TEXTO_FUENTE_FILTRADO.Text = TextoPuro
    End Sub
    Sub Cargar( _
    ByVal dgView As DataGridView, _
    ByVal SLibro As String, _
    ByVal sHoja As String)

        ' **************** PROCEDIMIENTO PARA CARGAR UN DATAGRID CON UNA HOJA DE EXCEL *********

        'HDR=YES : Con encabezado  
        Try
            ' cadena de conexión  

            Dim NombreDelExcelBook As String
            If Not System.IO.File.Exists(SLibro) Then
                Dim DialogOpenExcelBook As New OpenFileDialog()

                DialogOpenExcelBook.DefaultExt = ".xls"
                DialogOpenExcelBook.Filter = "Archivos Excel(*.xls)|*.xls|Todos los Archivos(*.*)|*.*"
                DialogOpenExcelBook.InitialDirectory = Application.ExecutablePath
                DialogOpenExcelBook.Title = "Cargar libro de Excel"

                Dim RespuestaDialogo As String
                RespuestaDialogo = DialogOpenExcelBook.ShowDialog
                If RespuestaDialogo = DialogResult.OK Then
                    NombreDelExcelBook = DialogOpenExcelBook.SafeFileName
                    SLibro = NombreDelExcelBook
                ElseIf RespuestaDialogo = DialogResult.Cancel Then
                    Exit Sub
                Else

                End If


            End If

            Dim cs As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                               "Data Source=" & SLibro & ";" & _
                               "Extended Properties=""Excel 8.0;HDR=YES"""
            Dim cn As New OleDbConnection(cs)

            ' se conecta con la hoja sheet 1  
            Dim dAdapter As New OleDbDataAdapter("Select * From [" & sHoja & "$]", cs)
            Dim datos As New DataSet

            ' agrega los datos  
            dAdapter.Fill(datos)

            With Main.datagrid_RESPUESTAS_PSIs

                '.Rows.RemoveAt(0)
                .Columns.RemoveAt(0)
                .Columns.RemoveAt(0)

                ' llena el DataGridView  
                .DataSource = datos.Tables(0)

                .AutoResizeColumns()
                .Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
                '.AutoSizeColumnsMode = DataGridViewAutoSizeColumnMode.Fill
                ' DefaultCellStyle: formato txt
                'para los encabezados 1,2 y 3 del DataGrid  
                '.Columns(0).DefaultCellStyle.Format = "string"
                '.Columns(1).DefaultCellStyle.Format = "string"

            End With
        Catch oMsg As Exception
            MsgBox(oMsg.Message, MsgBoxStyle.Critical)
        End Try
    End Sub
    Public Function CombrobarPuntoFinal(ByVal texto As String)

        Dim TextoConPuntoFinal As String = ""
        If Right(texto, 1) = "." Then
            TextoConPuntoFinal = texto
        Else
            TextoConPuntoFinal = texto & "."
        End If
        If TextoConPuntoFinal = "." Then
            TextoConPuntoFinal = ""
        End If
        'TODO VER PORQUE NO FUNCIONA EL REPLACE
        ' TextoConPuntoFinal = Replace(TextoConPuntoFinal, """", "'")
        Return TextoConPuntoFinal

    End Function
    Public Sub CrearNuevaLocalidad()
        'Se crea una variable string temporal para que el input no sea ""
        Dim Temporal As String
        Temporal = InputBox("Nombre de la localidad: ", "NUEVA LOCALIDAD")

        If Temporal = "" Then Exit Sub


        ' PROCEDIMIENTO PARA GRABAR EL NOMBRE DE LA NUEVA LOCALIDAD EN LA B.D.
        Dim sCnn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & txtBase
        Dim ODbConn As New OleDb.OleDbConnection(sCnn)
        ODbConn.Open()
        Dim LACommand As New OleDb.OleDbCommand("INSERT INTO LOCALIDADES (NombreLocalidad) VALUES ('" & Temporal & "')", ODbConn)
        Dim LADataReader As OleDbDataReader = LACommand.ExecuteReader(CommandBehavior.SingleRow)

        ' PROCEDIMIENTO PARA GRABAR EL NOMBRE IMPRESO DE LA NUEVA LOCALIDAD EN LA B.D.
        
        Dim NICommand As New OleDb.OleDbCommand("UPDATE LOCALIDADES SET LOCALIDADES.NombreImpreso = " & "'" & Temporal & "'" & "WHERE LOCALIDADES.nombrelocalidad=" & "'" & Temporal & "'", ODbConn)
        Dim NIDataReader As OleDbDataReader = NICommand.ExecuteReader(CommandBehavior.SingleRow)

        'Libera memoria
        LACommand.Dispose()
        NICommand.Dispose()
        ODbConn.Close()
        '------------

        Main.txt_LOCALIDAD_NOMBRE.Text = Temporal
        Main.txt_LOCALIDADES_NOMBRE_IMPRESO.Text = Temporal
        Main.lst_LOCALIDADES.Items.Add(Main.txt_LOCALIDAD_NOMBRE.Text)
        Main.lst_LOCALIDADES.SelectedIndex = Main.lst_LOCALIDADES.Items.Count - 1

        'Cuando hay una localidad hace visible los controles.
        If Main.lst_LOCALIDADES.Items.Count = 1 Then
            MostrarControlesLocalidades()
        End If
    End Sub
    Public Sub CrearNuevoObjeto()
        'Se crea una variable string temporal para que el input no sea ""
        Dim Temporal As String
        Temporal = InputBox("Nombre del objeto: ", "NUEVO OBJETO")

        If Temporal = "" Then Exit Sub


        ' PROCEDIMIENTO PARA GRABAR EL NOMBRE DEL NUEVO OBJETO EN LA B.D.
        Dim sCnn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & txtBase
        Dim ODbConn As New OleDb.OleDbConnection(sCnn)
        ODbConn.Open()
        Dim LACommand As New OleDb.OleDbCommand("INSERT INTO OBJETOS (Nombre) VALUES ('" & Temporal & "')", ODbConn)
        Dim LADataReader As OleDbDataReader = LACommand.ExecuteReader(CommandBehavior.SingleRow)

        'Libera memoria
        LACommand.Dispose()
        ODbConn.Close()

        '------------
        Main.txt_Nombre_Objeto.Text = Temporal
        Main.lstbox_OBJETOS.Items.Add(Main.txt_Nombre_Objeto.Text)
        Main.lstbox_OBJETOS.SelectedIndex = Main.lstbox_OBJETOS.Items.Count - 1

        'Cuando hay un objeto hace visibles los TabPage Instead
        If Main.lstbox_OBJETOS.Items.Count = 1 Then
            MostrarControlesObjetos()
        End If

    End Sub
    Public Sub CrearNuevoPSI()
        'Se crea una variable string temporal para que el input no sea ""
        Dim Temporal As String
        Temporal = InputBox("Nombre del PSI: ", "NUEVO PSI")
        If Temporal = "" Then Exit Sub
        If Main.lst_PSIS.Items.Count = 0 Then
            MostrarControlesPSIs()
        End If

        ' PROCEDIMIENTO PARA GRABAR EL NOMBRE DEL NUEVO PSI EN LA B.D.
        Dim sCnn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & txtBase
        Dim ODbConn As New OleDb.OleDbConnection(sCnn)
        ODbConn.Open()
        Dim PSICommand As New OleDb.OleDbCommand("INSERT INTO PSIS (NombrePSI) VALUES ('" & Temporal & "')", ODbConn)
        Dim PSIDataReader As OleDbDataReader = PSICommand.ExecuteReader(CommandBehavior.SingleRow)

        'Libera memoria
        PSICommand.Dispose()
        ODbConn.Close()

        '------------
        Main.txt_Nombre_PSI.Text = Temporal
        Main.lst_PSIS.Items.Add(Main.txt_Nombre_PSI.Text)
        Main.lst_PSIS.SelectedIndex = Main.lst_PSIS.Items.Count - 1

        'Cuando hay un psi hace visibles los controles


    End Sub
    Public Sub DarFormatoTexto()
        DarFormato.ShowDialog()
    End Sub
    Public Sub OcultarControlesObjetos()
        Main.Objetos_Acciones_Instead_I.Parent = Nothing
        Main.Objetos_Acciones_Instead_II.Parent = Nothing
        Main.cbo_ARTICULO.Enabled = False
        Main.txt_Nombre_Objeto.Enabled = False
        Main.chk_Objeto_Femenino.Enabled = False
        Main.txt_Nombre_Impreso_Objeto.Enabled = False
        Main.cbo_LOCALIZACION_OBJETO.Enabled = False
        Main.PictureBox_GRAFICO_OBJETOS.Enabled = False
        Main.btn_ELIMINAR_GRAFICO_OBJETO.Enabled = False
        Main.txt_Objeto_Apariencia_Inicial.Enabled = False
        Main.txt_Objeto_Descripción_Inicial.Enabled = False
        Main.txt_Objeto_Apariencia_Una_Vez_Examinado.Enabled = False
        Main.chk_Objeto_Llevada_Al_Inicio.Enabled = False
        Main.chk_Objeto_Llave.Enabled = False
        Main.chk_Objeto_Contenedor.Enabled = False
        Main.chk_Objeto_Transparente.Enabled = False
        Main.chk_Objeto_Aperturable.Enabled = False
        Main.chk_Objeto_Entrable.Enabled = False
        Main.chk_Objeto_Cerrado.Enabled = False
        Main.chk_Objeto_Cerrado_Con_llave.Enabled = False
        Main.chk_Objeto_Capacidad_De_Carga.Enabled = False
        Main.txt_Objeto_Capacidad_De_Carga.Enabled = False
        Main.chk_Objeto_Comestible.Enabled = False
        Main.chk_Objeto_Llevable_Puesto.Enabled = False
        Main.chk_Objeto_Escenario.Enabled = False
        Main.chk_Objeto_Empujable.Enabled = False
        Main.chk_Objeto_Interruptor_ON.Enabled = False
        Main.chk_Objeto_Interruptor_OFF.Enabled = False
        Main.chk_Objeto_Fijo_En_El_Sitio.Enabled = False
        Main.chk_Objeto_Portable.Enabled = False
        Main.chk_Objeto_Cogido.Enabled = False
        Main.chk_Objeto_Luminoso.Enabled = False
        Main.chk_Objeto_Ubicuo.Enabled = False
        Main.chk_Objeto_En_Todas_Partes.Enabled = False
        Main.btn_Sinónimos.Enabled = False
        Main.btn_Ver_Texto.Enabled = False
        Main.lstbox_OBJETOS.Enabled = False

    End Sub
    Public Sub MostrarControlesObjetos()

        Main.Objetos_Acciones_Instead_I.Parent = Main.TabControl2
        Main.Objetos_Acciones_Instead_II.Parent = Main.TabControl2
        Main.cbo_ARTICULO.Enabled = True
        Main.txt_Nombre_Objeto.Enabled = True
        Main.chk_Objeto_Femenino.Enabled = True
        Main.txt_Nombre_Impreso_Objeto.Enabled = True
        Main.cbo_LOCALIZACION_OBJETO.Enabled = True
        Main.PictureBox_GRAFICO_OBJETOS.Enabled = True
        Main.btn_ELIMINAR_GRAFICO_OBJETO.Enabled = True
        Main.txt_Objeto_Apariencia_Inicial.Enabled = True
        Main.txt_Objeto_Descripción_Inicial.Enabled = True
        Main.txt_Objeto_Apariencia_Una_Vez_Examinado.Enabled = True
        Main.chk_Objeto_Llevada_Al_Inicio.Enabled = True
        Main.chk_Objeto_Llave.Enabled = True
        Main.chk_Objeto_Contenedor.Enabled = True
        Main.chk_Objeto_Transparente.Enabled = True
        Main.chk_Objeto_Aperturable.Enabled = True
        Main.chk_Objeto_Entrable.Enabled = True
        Main.chk_Objeto_Cerrado.Enabled = True
        Main.chk_Objeto_Cerrado_Con_llave.Enabled = True
        Main.chk_Objeto_Capacidad_De_Carga.Enabled = True
        Main.txt_Objeto_Capacidad_De_Carga.Enabled = True
        Main.chk_Objeto_Comestible.Enabled = True
        Main.chk_Objeto_Llevable_Puesto.Enabled = True
        Main.chk_Objeto_Escenario.Enabled = True
        Main.chk_Objeto_Empujable.Enabled = True
        Main.chk_Objeto_Interruptor_ON.Enabled = True
        Main.chk_Objeto_Interruptor_OFF.Enabled = True
        Main.chk_Objeto_Fijo_En_El_Sitio.Enabled = True
        Main.chk_Objeto_Portable.Enabled = True
        Main.chk_Objeto_Cogido.Enabled = True
        Main.chk_Objeto_Luminoso.Enabled = True
        Main.chk_Objeto_Ubicuo.Enabled = True
        Main.chk_Objeto_En_Todas_Partes.Enabled = True
        Main.btn_Sinónimos.Enabled = True
        Main.btn_Ver_Texto.Enabled = True
        Main.lstbox_OBJETOS.Enabled = True

    End Sub
    Public Sub OcultarControlesLocalidades()
        Main.txt_LOCALIDAD_NOMBRE.Enabled = False
        Main.txt_LOCALIDADES_NOMBRE_IMPRESO.Enabled = False
        Main.chk_OSCURA.Enabled = False
        Main.chk_PUERTA.Enabled = False
        Main.txt_LOCALIDAD_DESCRIPCION_INICIAL.Enabled = False
        Main.txt_LOCALIDAD_DESCRIPCION_UNA_VEZ_VISITADA.Enabled = False
        Main.PictureBox_GRAFICO_LOCALIDAD.Enabled = False
        Main.btn_ELIMINAR_GRAFICO_LOCALIDAD.Enabled = False
        Main.cbo_NW.Enabled = False
        Main.cbo_N.Enabled = False
        Main.cbo_NE.Enabled = False
        Main.cbo_W.Enabled = False
        Main.cbo_E.Enabled = False
        Main.cbo_SW.Enabled = False
        Main.cbo_S.Enabled = False
        Main.cbo_SE.Enabled = False
        Main.cbo_ENTRAR.Enabled = False
        Main.cbo_SALIR.Enabled = False
        Main.cbo_BAJAR.Enabled = False
        Main.cbo_SUBIR.Enabled = False
        Main.btn_LOCALIDADES_GENERAR_CODIGO_INFORM.Enabled = False
        Main.btn_NW.Enabled = False
        Main.btn_N.Enabled = False
        Main.btn_NE.Enabled = False
        Main.btn_W.Enabled = False
        Main.btn_E.Enabled = False
        Main.btn_SW.Enabled = False
        Main.btn_S.Enabled = False
        Main.btn_SE.Enabled = False
        Main.btn_EN.Enabled = False
        Main.btn_SA.Enabled = False
        Main.btn_BA.Enabled = False
        Main.btn_SU.Enabled = False
        Main.lst_LOCALIDADES.Enabled = False
    End Sub
    Public Sub MostrarControlesLocalidades()
        Main.txt_LOCALIDAD_NOMBRE.Enabled = True
        Main.txt_LOCALIDADES_NOMBRE_IMPRESO.Enabled = True
        Main.chk_OSCURA.Enabled = True
        Main.chk_PUERTA.Enabled = True
        Main.txt_LOCALIDAD_DESCRIPCION_INICIAL.Enabled = True
        Main.txt_LOCALIDAD_DESCRIPCION_UNA_VEZ_VISITADA.Enabled = True
        Main.PictureBox_GRAFICO_LOCALIDAD.Enabled = True
        Main.btn_ELIMINAR_GRAFICO_LOCALIDAD.Enabled = True
        Main.cbo_NW.Enabled = True
        Main.cbo_N.Enabled = True
        Main.cbo_NE.Enabled = True
        Main.cbo_W.Enabled = True
        Main.cbo_E.Enabled = True
        Main.cbo_SW.Enabled = True
        Main.cbo_S.Enabled = True
        Main.cbo_SE.Enabled = True
        Main.cbo_ENTRAR.Enabled = True
        Main.cbo_SALIR.Enabled = True
        Main.cbo_BAJAR.Enabled = True
        Main.cbo_SUBIR.Enabled = True
        Main.btn_LOCALIDADES_GENERAR_CODIGO_INFORM.Enabled = True
        Main.btn_NW.Enabled = True
        Main.btn_N.Enabled = True
        Main.btn_NE.Enabled = True
        Main.btn_W.Enabled = True
        Main.btn_E.Enabled = True
        Main.btn_SW.Enabled = True
        Main.btn_S.Enabled = True
        Main.btn_SE.Enabled = True
        Main.btn_EN.Enabled = True
        Main.btn_SA.Enabled = True
        Main.btn_BA.Enabled = True
        Main.btn_SU.Enabled = True
        Main.lst_LOCALIDADES.Enabled = True

    End Sub
    Public Sub OcultarControlesPSIs()
        Main.txt_Nombre_PSI.Enabled = False
        Main.rbt_Hombre.Enabled = False
        Main.rbt_Mujer.Enabled = False
        Main.rbt_Animal.Enabled = False
        Main.cbo_LOCALIZACION_PSI.Enabled = False
        Main.btn_PSIS_Sinonimos.Enabled = False
        Main.PictureBox_GRAFICO_PSIS.Enabled = False
        Main.btn_ELIMINAR_GRAFICO_PSI.Enabled = False
        Main.txt_PSI_NOMBRE_IMPRESO.Enabled = False
        Main.txt_PSI_APARIENCIA_INICIAL.Enabled = False
        Main.txt_PSI_DESCRIPCION_INICIAL.Enabled = False
        Main.txt_PSI_DESCRIPCION_UNA_VEZ_EXAMINADO.Enabled = False
        Main.btn_PSIS_VER_TEXTO.Enabled = False
        Main.lst_PSIS.Enabled = False
        Main.TabPagePSI_RESPUESTAS_A_TOPICOS.Parent = Nothing
        Main.TabPagePSI_INSTEADS.Parent = Nothing
        Main.TabPagePSI_RESPUESTAS_ALEATORIAS.Parent = Nothing
        Main.TabPagePSI_RESPUESTAS_PREDEFINIDAS.Parent = Nothing

    End Sub
    Public Sub MostrarControlesPSIs()
        Main.txt_Nombre_PSI.Enabled = True
        Main.rbt_Hombre.Enabled = True
        Main.rbt_Mujer.Enabled = True
        Main.rbt_Animal.Enabled = True
        Main.cbo_LOCALIZACION_PSI.Enabled = True
        Main.btn_PSIS_Sinonimos.Enabled = True
        Main.PictureBox_GRAFICO_PSIS.Enabled = True
        Main.btn_ELIMINAR_GRAFICO_PSI.Enabled = True
        Main.txt_PSI_NOMBRE_IMPRESO.Enabled = True
        Main.txt_PSI_APARIENCIA_INICIAL.Enabled = True
        Main.txt_PSI_DESCRIPCION_INICIAL.Enabled = True
        Main.txt_PSI_DESCRIPCION_UNA_VEZ_EXAMINADO.Enabled = True
        Main.btn_PSIS_VER_TEXTO.Enabled = True
        Main.lst_PSIS.Enabled = True

        Main.TabPagePSI_RESPUESTAS_A_TOPICOS.Parent = Main.TabControlPSIS
        Main.TabPagePSI_INSTEADS.Parent = Main.TabControlPSIS
        Main.TabPagePSI_RESPUESTAS_ALEATORIAS.Parent = Main.TabControlPSIS
        Main.TabPagePSI_RESPUESTAS_PREDEFINIDAS.Parent = Main.TabControlPSIS
    End Sub
    Public Sub CargarTreeViewRespuestasPredefinidas()
        ' PRUEBAS

        Main.TvwTopicoPredefinidos.Nodes.Clear()
        '==============================================================================================
        'COMENTARIOS. Procedimiento encargado de CAGAR RESPUESTAS PREDEFINIDAS EN EL TREEVIEW
        '==============================================================================================

        'Se establece la conexión con la base de datos.
        Dim sCnn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & txtBase
        Dim ODbConn As New OleDb.OleDbConnection(sCnn)
        ODbConn.Open()

        Dim Command As New OleDb.OleDbCommand("SELECT * FROM PSIS_RESPUESTAS_PREDEFINIDAS", ODbConn)
        Dim DataReader As OleDbDataReader = Command.ExecuteReader(CommandBehavior.CloseConnection)

        ':-------

        While DataReader.Read
            Dim Categoria As String
            Categoria = DataReader.Item("Topico")
            If Main.TvwTopicoPredefinidos.Nodes.Find(Categoria, True).Length > 0 Then
            Else
                Main.TvwTopicoPredefinidos.Nodes.Add(Categoria, Categoria)
            End If
        End While

        Dim SCommand As New OleDb.OleDbCommand("SELECT * FROM PSIS_SINONIMOS_RESPUESTAS_PREDEFINIDAS", ODbConn)
        Dim SDataReader As OleDbDataReader = SCommand.ExecuteReader(CommandBehavior.CloseConnection)

        While SDataReader.Read
            Dim topico As String
            Dim sinonimo As String
            Dim Indice As Integer
            topico = SDataReader.Item("topico")
            sinonimo = SDataReader.Item("sinonimo")
            Dim tvn() As TreeNode = Main.TvwTopicoPredefinidos.Nodes.Find(topico, True)
            If tvn.Length > 0 Then
                Main.TvwTopicoPredefinidos.SelectedNode = tvn(0)
                Indice = Main.TvwTopicoPredefinidos.SelectedNode.Index
            End If

            Main.TvwTopicoPredefinidos.Nodes(Indice).Nodes.Add(sinonimo, sinonimo)
        End While

        Command.Dispose()
        ODbConn.Close()

    End Sub
End Module
